Carrier acquisition in satellite communications

ABSTRACT

A computer comprises a processor and a memory. The memory stores instructions executable by the processor to input a frequency spectrum distribution to a machine learning program to obtain carrier data as output from the machine learning program satellite communication. The machine learning program is trained with a plurality of frequency spectrum distributions of a wireless satellite communication signal and metadata specifying one or more satellite communication carriers for respective ones of the frequency spectrum distributions, wherein the metadata for each satellite communication carrier includes a respective center frequency and a respective symbol rate.

BACKGROUND

Satellite communications can provide wireless communications over alarge area of the Earth's surface, e.g., for Internet access, enterpriseintranet connectivity, TV (television) broadcasting services, etc.Respective satellites' coverage of the Earth's surface may overlap. Asatellite beam may communicate with satellite terminals via multiplecarriers. A satellite terminal may select a carrier from a satellitebeam with one or more beams covering a location of the satelliteterminal based on data specifying various carriers of a satellite beam.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example satellite network.

FIG. 2 illustrates a shape of an example carrier in a frequencyspectrum.

FIG. 3 illustrates multiple carriers in an example frequency spectrumdistribution.

FIG. 4 is a block diagram of an example machine learning program foridentifying carrier data in an input frequency spectrum distribution.

FIG. 5 is a flowchart of an example process for training the machinelearning program of FIG. 4 .

FIG. 6 is a flowchart of an example process for operating a satelliteterminal.

DETAILED DESCRIPTION Introduction

Disclosed herein is a computer comprising a processor and a memory. Thememory stores instructions executable by the processor to input afrequency spectrum distribution to a machine learning program to obtaincarrier data as output from the machine learning program satellitecommunication. The machine learning program is trained with a pluralityof frequency spectrum distributions of a wireless satellitecommunication signal and metadata specifying one or more satellitecommunication carriers for respective ones of the frequency spectrumdistributions, wherein the metadata for each satellite communicationcarrier includes a respective center frequency and a respective symbolrate.

Respective frequency spectrum distributions may be a result of afrequency spectrum analysis of the received wireless satellitecommunication.

The frequency spectrum analysis may include performing a FourierTransform.

The instructions may further include instructions to determine trainingdata for the machine learning program based on user input specifying oneor more satellite carriers for each of the one or more frequencyspectrum distributions.

The one or more frequency spectrum distributions may be results ofsimulation or measurement of satellite signal.

The carrier data may include a symbol rate and a center frequency foreach carrier.

The carrier data may further include a confidence measure for eachidentified carrier.

The instructions may further include instructions to determine that themachine learning program is trained upon determining that a detectionaccuracy of the machine learning program exceeds a threshold.

The machine learning program may be a convolutional neural networkincluding a dense layer and a flatten layer.

Exemplary System Elements

A satellite terminal may select a carrier from a satellite beam with oneor more beams covering a location of the satellite terminal based ondata specifying various carriers of a satellite beam. A computer of thesatellite terminal then stores data specifying carriers of beamscovering the terminal location. The terminal's stored data may need tobe updated, e.g., because of a change, addition, or removal of acarrier. Advantageous techniques are described herein to identifycarriers of a satellite beam in a satellite terminal, and to select acarrier for operation of the satellite terminal based on the identifiedcarriers. A computer, e.g., in a terminal, can be programmed to input afrequency spectrum to a machine learning program to obtain satellitecommunication carrier data as output from the machine learning program.The machine learning program is trained with multiple frequency spectrumdistributions of a wireless satellite communication signal, and withmetadata specifying one or more satellite communication carriers forrespective ones of the frequency spectrum distributions. The metadatafor respective satellite communication carriers includes a centerfrequency and a symbol rate of the carrier.

Additionally or alternatively, the satellite terminal can be programmedto determine a frequency spectrum distribution for a wirelesscommunication signal received via an antenna from a remote computer, andto input the determined frequency spectrum distribution of the receivedwireless communication signal to a machine learning program trained toidentify satellite communication carriers in a frequency spectrumdistribution. The satellite terminal can be further programmed toreceive a list of one or more satellite communication carriers from thetrained machine learning program, and to lock the satellite terminal toa selected one of the carriers of a satellite gateway, the selectedcarrier being included in the list of one or more satellitecommunication carriers.

With reference to FIG. 1 , a satellite network 100 may include one ormore satellites 110 providing satellite communication to terminals 120located in a coverage area 130 of the satellite communication network100. A coverage area 130 of a satellite communication network 100includes a geographical area on the surface of Earth. A coverage area130 of a satellite communication network 100 may include footprints 150of one or more beams 115 of one or more satellites 110 included in thesatellite communication network 100. Locations on the surface of Earth,e.g., a location of a satellite terminal 120, may be specified based ona location coordinate system, e.g., a planar coordinate system includinglongitudinal and latitudinal coordinates. Additionally or alternatively,a location on the surface of Earth may be specified based on a celestialcoordinate system including an azimuth and an elevation (or altitude).

A satellite 110 may include a computer 140 and an antenna communicatingwith terminals 120 via a satellite communication link. In the presentcontext, a satellite link (or satellite communication link) includes anuplink and/or a downlink. An uplink includes communication from aterminal 120 or a satellite gateway 170 to a satellite 110. A downlinkincludes communication from the satellite 110 to a gateway 170 or aterminal 120.

A satellite 110 antenna may communicate via one or more satellite beams115 having respective footprints 150. In the present context, afootprint 150 of a satellite beam 115 is a geographical area on thesurface of Earth, in which a terminal 120 may communicate with thesatellite 110 via the respective beam 115. A satellite 110 beam 115having a footprint 150 is a satellite 110 signal that is concentrated inpower, sent by a high-gain antenna, and that therefore typically coversonly a limited geographic area on Earth. A satellite 110 may have anynumber (one or more) of beams 115 that cover different parts ofsatellite network coverage area 130. Satellite 110 beams 115 mayoverlap. A footprint 150, i.e., including its dimensions and shape, isdetermined by a satellite 110 distance from the Earth and physicalcharacteristics of the satellite 110 antenna such as antenna radiationpattern, etc. A terminal 120 in a footprint 150 may receive data fromthe satellite 110 via a downlink or send data to the satellite 110 viaan uplink. A satellite 110 may provide coverage for multiple terminals120, e.g., in multiple geographical regions within the footprint 150. Afootprint 150 of a beam 115 may have a circular shape or a non-circularshape, e.g., an ellipse, a polygon, etc. A shape of a footprint 150 isdetermined based on physical characteristics of satellite 110 antenna,e.g., radiation pattern, a frequency of communication, a distance of thesatellite 110 from the Earth, etc.

A footprint 150 shape and/or dimensions may be changed by adjustinglocation coordinates of the perimeter of the footprint 150, whereas afootprint 150 shape and/or dimensions can be changed by changingphysical characteristics such as a satellite 110 antenna radiationpattern, communication frequency, etc. In other words, by definingfootprints 150 using stored location coordinates of a perimeter of thefootprint 150, the footprints 150 can be adjusted in shape, dimensions,and/or location by changing the stored data.

A gateway 170 computer 140, a satellite 110 computer 140, or a terminal120 computer 140, is a computing device including a processor andmemory. Computer memory can be implemented via circuits, chips or otherelectronic components and can include one or more of read-only memory(ROM), random access memory (RAM), flash memory, electricallyprogrammable memory (EPROM), electrically programmable and erasablememory (EEPROM), embedded MultiMediaCard (eMMC), a hard drive, or anyvolatile or non-volatile media etc. The memory may store instructionsexecutable by the processor and other data. The processor is implementedvia circuits, chips, or other electronic components and may include oneor more microcontrollers, one or more field-programmable gate arrays(FPGAs), one or more application-specific integrated circuits (ASICs),one or more digital signal processors (DSPs), one or morecustomer-specific integrated circuits, etc. A processor in a computer140 included in a terminal 120, a satellite 110, and/or gateway 170 maybe programmed to execute instructions stored in a computer memory tocarry out the actions, as disclosed herein.

The terminals 120 (or satellite terminals 120), e.g., very smallaperture terminals (VSAT), are computer-based communication devicesimplemented via circuits, chips, antennas, or other electroniccomponents that can communicate with satellites 110 that are withincommunication range of the terminal 120. A terminal 120 can bestationary relative to a location on Earth or can be mobile, i.e.,moving relative to a location on the Earth. In some instances, terminal120 may provide an interface between a satellite 110 and otherground-based communication devices. For instance, terminal 120 mayreceive communications from a satellite 110 and transmit suchcommunications via terrestrial communication channels (i.e., betweenground-based devices).

A terminal 120 includes one or more computers 140. A terminal 120 mayinclude a modulator and a demodulator to facilitate communications withsatellites 110. Moreover, a terminal 120 may include an encoder toencode outgoing data and/or a decoder to decode received data. Aterminal 120 may include or be communicatively connected to one or moreantennas, which allow a terminal 120 to communicate with a satellitegateway 170 via one or more satellites 110 at a time. For example, adish antenna may include a low-noise block downconverter (LNB) mountedon the dish, which may collect radio waves from the dish and convert thecollected radio waves to a signal which is sent through a wiredconnection, e.g., a cable, to the terminal 120.

A terminal 120 communicates with a satellite 110 via a carrier (orchannel). A satellite 110 beam 115 provides for communications viamultiple carriers. Several terminals 120 can communicate via a carrierof one beam 115. In one example, a satellite 110 beam 115 may have 5carriers. Satellite 110 beams 115 and their carriers may be individuallyaddressable. Thus, a satellite 110 may send first data via a firstcarrier and send second data via a second carrier.

FIG. 2 shows an example frequency spectrum distribution of radio signalreceived via a beam from a satellite 110 in a frequency domain. In thepresent context, a frequency spectrum distribution is a result of afrequency spectrum analysis, e.g., a Fourier Transform, of the receivedwireless satellite communication. A carrier can be specified in afrequency spectrum distribution by a symbol rate sr which is a range ofthe carrier and a center frequency cf of the carrier which is an offsetfrom a center of the frequency spectrum. A terminal 120 may communicatewith a satellite 110 by locking to one of the carriers included in abeam 115. In the present context, locking to a carrier means configuringa terminal 120 to communicate based on the respective center frequencycf and symbol rate sr of the carrier. In some examples, a terminal 120may include a phased locked loop (PLL) circuit that is configured tocommunicate based on a specific carrier of the beam 115. To communicatevia a carrier, the terminal 120 computer 140 may be programmed toactuate an electronic component, e.g., a PLL circuit, of the terminal120 to establish a communication link with the satellite 110 based onthe center frequency cf and symbol rate sr of the carrier.

As shown in the example frequency spectrum distribution of FIG. 3 , abeam 115 typically includes multiple carriers, e.g., carrier A andcarrier B. For example, carrier A can be specified with a first centerfrequency cf₁ and a first symbol rate sr₁, and carrier B can bespecified with a second center frequency cf₂ and a second symbol ratesr₂. The data specifying a carrier, e.g., a center frequency cf and asymbol rate sr, are referred to herein as carrier data.

A machine learning program such as a neural network (NN), SVM (SupportVector Machine), decision tree, naïve Bayes algorithm, ensemble methods,etc., can be implemented in software and/or hardware.

A neural network is a computer system that is inspired by biologicalneural networks. For example, a convolutional neural network (CNN),learns to perform tasks by receiving sample inputs, i.e., sets of datasuch as images, audio data or, as in present examples, frequencyspectrum distributions, etc., without being programmed with anytask-specific rules. A neural network can be a software program that canbe loaded in a memory and executed by a processor included in, e.g., acomputer 140. The neural network can include n input nodes, eachaccepting a set of inputs i (i.e., each set of inputs i can include oneor more inputs x). The neural network can include m output nodes (wherem and n may be, but typically are not, a same number) that provide setsof outputs o₁ . . . o_(m). In the present context, the “sets of output”are sets of data for respective carriers that specify respective centerfrequencies cf and symbol rates sr for the carriers represented in theset. A neural network typically includes a plurality of layers,including a number of hidden layers, each layer including one or morenodes. The nodes are sometimes referred to as artificial neurons becausethey are designed to emulate biological, e.g., human, neurons.Additionally or alternatively, a neural network may have variousarchitectures, layers, etc. such as are known.

In one example, a machine learning program, e.g., a CNN, can be trainedto receive as input a frequency spectrum distribution such as shown inFIG. 3 , and output satellite communication carrier data, e.g., centerfrequencies cf₁, cf₂, e.g., −10 MHz and 115 MHz, and symbol rates sr₁,sr₂, e.g., 180 Msps and 54 Msps, of carrier A and carrier B.

The machine learning program can be trained with multiple frequencyspectrum distributions of a wireless satellite communication signal andmetadata specifying one or more satellite communication carriers forrespective ones of the frequency spectrum distributions.

The metadata for each satellite communication carrier includes arespective center frequency cf and a respective symbol rate sr. Table 1below shows an example set of training data including the metadata,e.g., including a first and a second frequency spectrum distributions.The first frequency spectrum distribution includes carriers A and B withrespective metadata. The second frequency spectrum distribution includescarriers C, D, E, and F with respective metadata. The training data forthe machine learning program may be determined based on user inputspecifying one or more satellite carriers for each of the one or morefrequency spectrum distributions. For example, a user may identify thecarriers based on a visual representation of a frequency spectrumdistribution such as shown in FIG. 3 .

TABLE 1 Frequency Center Symbol Bandwidth distribution identifierCarrier frequency rate Mbps 1 A cf₁ sr₁ bw₁ 1 B cf₂ sr₂ bw₂ 2 C cf₃ sr₃bw₃ 2 D cf₄ sr₄ bw₄ 2 E cf₅ sr₅ bw₅ 2 F cf₆ sr₆ bw₆

Training a neural network may include adjustment of weights and bias ofthe network through backpropagation to reduce the prediction error orcommonly known as the loss of the network's prediction. Back-propagationis a technique that returns output states from a CNN to the input to becompared to corresponding ground truth. In this example, during trainingthe output carrier data can be backpropagated to be compared to themetadata included in the ground truth training data to determine a lossfunction. The loss function determines how accurately the CNN hasprocessed the input data. A CNN can be executed a plurality of times ona set of ground truth data while varying parameters that control theprocessing of the CNN. Parameters that correspond to correct answers asconfirmed by a loss function that compares the output states to theground truth are saved as candidate parameters. Following the test runs,the candidate parameters that produce the most correct results are savedas the parameters that will be used to program the CNN during operation.

FIG. 4 shows an example block diagram 400 of a CNN trained to outputcarrier data based on an input frequency spectrum distribution. In thisexample, a multi-layer 1D (one-dimensional) CNN machine learning modelis used to detect the symbol rate sr and center frequency cf ofcarrier(s) through pattern recognition on the frequency spectrumdistribution of the carrier signal.

The training data may include real measured data and/or simulatedfrequency spectrum distributions including various actual satellitecarriers. The training can be performed to reach a level of detectionaccuracy exceeding a specified threshold, e.g., 90%. Detection accuracyin the context of this document means a percentage of identifications ofa carrier center frequency cf and symbol rate sr by the machine learningprogram that are correct, i.e., match within a specified errorthreshold, e.g., 5%, when compared to actual values of center frequencycf and symbol rate sr of the carrier.

The example machine learning program of FIG. 4 includes 3 layers, 2 1D(one dimensional) CNN layers, and a final dense layer. In a dense layer,a non-linear function, e.g., a rectified linear unit (RELU) function, isapplied to a weighted sum of inputs. A flatten layer converts amulti-dimensional matrix input into a single dimension matrix. Based onperformed lab tests, the multilayer example machine learning model ofFIG. 4 could be trained to reach a 96% detection accuracy when testedagainst actual received satellite data. An output prediction blocksoutputs the identified carriers. In some example, the output block mayoutput a confidence measure for each identified carrier. A confidencemeasure may be in a range of 0 to 100% (percent). A higher confidencemeasure indicates a higher likelihood of accurate identification of therespective carrier.

FIG. 5 shows an example flowchart of a process 500 for training themachine learning program to output carrier data. Any suitable computermay be programmed to execute blocks of the process 500.

The process 500 begins with generating training data. The computer maybe programmed to receive user input identifying carrier data in multiplestored frequency spectrum distributions. For example, a user input mayinclude numerical input, e.g., center frequency cf, symbol rate sr,etc., specifying one or more carriers in the received frequency spectrumdistributions. For example, a user may provide input to identify thecarriers in a display of an illustrated graph of the frequency spectrumdistribution as shown in the example graph of FIG. 3 . The lab computermay then store the training data including the frequency spectrumdistributions and respective carrier data.

Next, in a block 520, the lab computer trains the machine learningprogram, e.g., a CNN, based on the generated training data. The labcomputer may train a CNN by inputting the generated training data to theCNN and train the CNN, e.g., using backpropagation technique.

Next, in a block 530, the lab computer may store the trained machinelearning program, e.g., weights and biases of the trained CNN, in acomputer memory. The stored data specifying the machine learning programmay be transmitted to satellite terminals 120 and stored in a memory ofthe terminal 120 computer 140. Following the block 530, the process 500ends or alternatively returns to the block 510, although not shown inFIG. 5 .

As discussed above, a terminal 120 may communicate with a satellite 110by locking to one of the carriers included in a beam 115. The terminal120 computer 140 may store data specifying carriers of the satellite 110beam 115, however, carrier data of a beam 115 may change, e.g., newcarriers may be added, existing carriers may be removed, etc. FIG. 6 isa flowchart of an example process 600 for operating a satellite terminal120. A satellite terminal 120 computer 140 may be programmed to executeblocks of the process 600.

The process 600 begins in a block 610, in which the computer 140receives stored carrier list. In one example, the computer 140 may storea list of carriers in a computer 140 memory and may receive the storedlist from the computer 140 memory.

Next, in a block 615, the computer 140 receives a satellite signal froma gateway 170, typically via an antenna electrically connected to theterminal 120. In one example, a receiving circuit of a terminal, e.g.,an amplifier and/or decoder circuit, receives the electrical signal forfurther processing.

Next, in a block 620, the computer 140 generates a frequency spectrumdistribution of the received satellite signal. Additionally oralternatively, an electronic circuit such a digital signal processingunit may be configured to determine the frequency spectrum distributionof the received signal, e.g., by computing a Fourier transform or a FastFourier Transform (FFT) of the received signal.

Next, in a block 625, the computer 140 applies the generated frequencyspectrum distribution to trained machine learning program, e.g., thetrained CNN as discussed with respect to FIGS. 4-5 .

Next, in a block 630, the computer 140 determines whether output carrierdata is received from the trained machine learning program. If thecomputer 140 receives the output carrier data from the trained machinelearning program, then the process 600 proceeds to a block 635;otherwise the process 600 returns to the decision block 630.

In the block 635, the computer 140 updates stored carrier data. Thecomputer 140 may be programmed to compare stored carrier data with theoutput carrier data received from the trained machine learning program.The computer 140 may be programmed to update the stored list by (i)removing a carrier from the list that is not included in the outputcarrier data, and (ii) adding a carrier to the list that is not presentin the stored list but available in the output carrier data of themachine learning program.

Next, in a block 640, the computer 140 selects a carrier from theupdated carrier list. In one example, the computer 140 may be programmedto select a first carrier from the list, e.g., a first identifier in thelist. In another example, the computer 140 may be programmed to select acarrier based on further criteria such as an available bandwidth of eachcarrier or based on a load balancing scheme. The computer 140 may beprogrammed to select a carrier further based on determining whether aprevious attempt to lock to the respective carrier has been successful.The computer 140 may determine that a previous attempt was unsuccessfulif the block 640 is reached from the decision block 645. For example, ifan attempt to lock to a first carrier was unsuccessful, the computer 140may select a second carrier from the updated list. An attempt to lockoccurs when the computer 140 actuates, e.g., a PLL circuit, of theterminal 120 to lock to a selected carrier. An attempt is successful ifthe terminal 120 can establish a communication link via the selectedcarrier with the satellite 110. An attempt is unsuccessful is theterminal 120 can not establish a communication link via the selectedcarrier and/or at least some other criteria is not fulfilled, e.g., abandwidth of the established link is less than a threshold, etc.Additionally or alternatively, the computer 140 may be programmed toselect a carrier based on a confidence measure of the respectivecarrier. As discussed above, the trained machine learning program mayoutput a confidence measure for each of the identified carriers. Thecomputer 140 may be programed to select a carrier upon determining thata respective confidence measure exceeds a threshold, e.g., 90%.

Next, in a decision block 645, the computer 140 determines whether theterminal 120 has been locked to the selected carrier. The computer 140may be programmed to actuate an electronic component of the terminal120, e.g., a PLL circuit, to lock the carrier to the selected carrierand determine that the locking was unsuccessful if the locking has notsucceeded within a specified time window, e.g., 1 second. If thecomputer 140 determines that the terminal 120 is locked to the selectedcarrier, then the process 600 proceeds to a block 650; otherwise theprocess 600 returns to the block 640.

In the block 650, the computer 140 resumes operation of the terminal 120by establishing a downlink and/or uplink to the satellite 110 andstarting communication via the established satellite link(s). Followingthe block 650, the process 600 ends, or alternatively returns to theblock 610, although not shown in FIG. 6 .

In general, the computing systems and/or devices described may employany of a number of computer operating systems, including, but by nomeans limited to, versions and/or varieties of the Microsoft Windows®operating system, the Unix operating system (e.g., the Solaris®operating system distributed by Oracle Corporation of Redwood Shores,Calif.), the AIX UNIX operating system distributed by InternationalBusiness Machines of Armonk, N.Y., the Linux operating system, the MacOSX and iOS operating systems distributed by Apple Inc. of Cupertino,Calif., the BlackBerry OS distributed by Blackberry, Ltd. of Waterloo,Canada, and the Android operating system developed by Google, Inc. andthe Open Handset Alliance. Examples of computing devices include,without limitation, network devices such as a gateway or terminal, acomputer workstation, a server, a desktop, notebook, laptop, or handheldcomputer, or some other computing system and/or device.

Computing devices generally include computer-executable instructions,where the instructions may be executable by one or more computingdevices such as those listed above. Computer-executable instructions maybe compiled or interpreted from computer programs created using avariety of programming languages and/or technologies, including, withoutlimitation, and either alone or in combination, Java™, C, C++, VisualBasic, Java Script, Perl, etc. Some of these applications may becompiled and executed on a virtual machine, such as the Java VirtualMachine, the Dalvik virtual machine, or the like. In general, aprocessor (e.g., a microprocessor) receives instructions, e.g., from amemory, a computer-readable medium, etc., and executes theseinstructions, thereby performing one or more processes, including one ormore of the processes described herein. Such instructions and other datamay be stored and transmitted using a variety of computer-readablemedia.

A computer-readable medium (also referred to as a processor-readablemedium) includes any non-transitory (e.g., tangible) medium thatparticipates in providing data (e.g., instructions) that may be read bya computer (e.g., by a processor of a computer). Such a medium may takemany forms, including, but not limited to, non-volatile media andvolatile media. Non-volatile media may include, for example, optical ormagnetic disks and other persistent memory. Volatile media may include,for example, dynamic random-access memory (DRAM), which typicallyconstitutes a main memory. Such instructions may be transmitted by oneor more transmission media, including coaxial cables, copper wire andfiber optics, including the wires that comprise a system bus coupled toa processor of a computer. Common forms of computer-readable mediainclude, for example, a floppy disk, a flexible disk, hard disk,magnetic tape, any other magnetic medium, a CD-ROM, DVD, any otheroptical medium, any other physical medium with patterns of holes, a RAM,a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, orany other medium from which a computer can read.

Databases, data repositories or other data stores described herein mayinclude various kinds of mechanisms for storing, accessing, andretrieving various kinds of data, including a hierarchical database, aset of files in a file system, an application database in a proprietaryformat, a relational database management system (RDBMS), etc. Each suchdata store is generally included within a computing device employing acomputer operating system such as one of those mentioned above, and areaccessed via a network in any one or more of a variety of manners. Afile system may be accessible from a computer operating system, and mayinclude files stored in various formats. An RDBMS generally employs theStructured Query Language (SQL) in addition to a language for creating,storing, editing, and executing stored procedures, such as the PL/SQLlanguage mentioned above.

In some examples, system elements may be implemented ascomputer-readable instructions (e.g., software) on one or more computingdevices (e.g., servers, personal computers, etc.), stored on computerreadable media associated therewith (e.g., disks, memories, etc.). Acomputer program product may comprise such instructions stored oncomputer readable media for carrying out the functions described herein.

With regard to the processes, systems, methods, heuristics, etc.described herein, it should be understood that, although the steps ofsuch processes, etc. have been described as occurring according to acertain ordered sequence, such processes could be practiced with thedescribed steps performed in an order other than the order describedherein. It further should be understood that certain steps could beperformed simultaneously, that other steps could be added, or thatcertain steps described herein could be omitted. In other words, thedescriptions of processes herein are provided for the purpose ofillustrating certain embodiments, and should in no way be construed soas to limit the claims.

Accordingly, it is to be understood that the above description isintended to be illustrative and not restrictive. Many embodiments andapplications other than the examples provided would be apparent uponreading the above description. The scope should be determined, not withreference to the above description, but should instead be determinedwith reference to the appended claims, along with the full scope ofequivalents to which such claims are entitled. It is anticipated andintended that future developments will occur in the technologiesdiscussed herein, and that the disclosed systems and methods will beincorporated into such future embodiments. In sum, it should beunderstood that the application is capable of modification andvariation.

All terms used in the claims are intended to be given their ordinarymeanings as understood by those knowledgeable in the technologiesdescribed herein unless an explicit indication to the contrary is madeherein. In particular, use of the singular articles such as “a,” “the,”“said,” etc. should be read to recite one or more of the indicatedelements unless a claim recites an explicit limitation to the contrary.

The Abstract is provided to allow the reader to quickly ascertain thenature of the technical disclosure. It is submitted with theunderstanding that it will not be used to interpret or limit the scopeor meaning of the claims. In addition, in the foregoing DetailedDescription, it can be seen that various features are grouped togetherin various embodiments for the purpose of streamlining the disclosure.This method of disclosure is not to be interpreted as reflecting anintention that the claimed embodiments require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive subject matter lies in less than all features of asingle disclosed embodiment. Thus, the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separately claimed subject matter.

What is claimed is:
 1. A computer, comprising a processor and a memory,the memory storing instructions executable by the processor to: input afrequency spectrum distribution to a machine learning program to obtaincarrier data as output from the machine learning program satellitecommunication, wherein the machine learning program is trained with aplurality of frequency spectrum distributions of a wireless satellitecommunication signal and metadata specifying one or more satellitecommunication carriers for respective ones of the frequency spectrumdistributions, wherein the metadata for each satellite communicationcarrier includes a respective center frequency and a respective symbolrate.
 2. The computer of claim 1, wherein respective frequency spectrumdistributions is a result of a frequency spectrum analysis of thereceived wireless satellite communication.
 3. The computer of claim 2,wherein the frequency spectrum analysis includes performing a FourierTransform.
 4. The computer of claim 1, wherein the instructions furtherinclude instructions to determine training data for the machine learningprogram based on user input specifying one or more satellite carriersfor each of the one or more frequency spectrum distributions.
 5. Thecomputer of claim 4, wherein the one or more frequency spectrumdistributions are results of simulation or measurement of satellitesignal.
 6. The computer of claim 1, wherein the carrier data includes asymbol rate and a center frequency for each carrier.
 7. The computer ofclaim 6, wherein the carrier data further includes a confidence measurefor each identified carrier.
 8. The computer of claim 1, wherein theinstructions further include instructions to determine that the machinelearning program is trained upon determining that a detection accuracyof the machine learning program exceeds a threshold.
 9. The computer ofclaim 1, wherein the machine learning program is a convolutional neuralnetwork including a dense layer and a flatten layer.